package org.baicaixiaozhan.tenet.freemarker.util;

import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.util.List;
import java.util.Map;

/**
 * DESC:
 *
 * @author baicaixiaozhan
 * @since 1.0.0
 */
public interface DocxFileOpt {


    /**
     * 获取生成的文件对象
     *
     * @return
     */
    default File getFile() { return null; }

    /**
     * 当前使用的文件对象属于临时文件，可手动删除
     */
    default void deleteFile() {}

    /**
     * 生成 *.docx 文件
     *
     * @param data
     * @param template
     * @return
     */
    default DocxFileOpt buildDocxFile(Map<String, String> data, String template) { return null; }

    /**
     * 生成 *.docx 文件
     *
     * @param data
     * @param template
     * @return
     */
    default <T> DocxFileOpt buildDocxFile(T data, String template) { return null; }

    /**
     * 生成 *.docx 文件（包含图片）
     *
     * @param data
     * @param template
     * @param imageList
     * @param <T>
     * @return
     */
    default <T> DocxFileOpt buildDocxFile(T data, String template, List<File> imageList) { return null; }

    /**
     * docx 文件 设置只读
     *
     * @return
     * @param password
     */
    default DocxFileOpt readOnlyDocxFile(String password) { return null; }

    /**
     * 下载文件
     *
     *  @param fileName
     * @param response
     */
    default void downloadDocxFile(String fileName, HttpServletResponse response) {}

    /**
     * 转换 *.docx => html
     *
     * @param response
     */
    default void convertDocxToHtml(HttpServletResponse response) {}
}
